#ifndef frm_control_TStringEdit_H
#define frm_control_TStringEdit_H

#include "svl_TVariant.h"
#include "frm_control_TString.h"

namespace frm { namespace control {

///////////////////////////////////////////////////////////////////////////////

struct TStringEdit : public TString
{
  //struct TStyle : public TString::TStyle
  //{
  //};
  //
  TStringEdit(TWindow &Window,int MaxLen = 0);
  //
  bool IsNull()  { return TString::GetValue().Len() == 0; }
  void SetNull() { TString::SetValue(""); }
  //
  //TStringEdit &SetStyle(TStyle &Style) { TString::SetStyle(Style); return *this; }
  //
  void SetEnableEdit(bool V) { enableEdit = V;}
  void SetValue(svl::TVariant V);
  //
  virtual bool UpdateValue(svl::TString V);
  
protected:  
  virtual void TComponent_KeyboardKey(grf::TKeyboardKey &KeyboardKey);
  virtual void TComponent_KeyboardChar(grf::TKeyboardChar &KeyboardChar);
  virtual bool TComponent_FocusEnable() { return enableEdit;}
  //
  TComponent *TComponent_New() { return new TString(GetWindow()); }
  
private:
  int  maxLen;
  bool enableEdit;
};

///////////////////////////////////////////////////////////////////////////////
}}

#endif
